#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
 
typedef int LTDataType;


typedef struct ListNode
{
	struct ListNode* prev;
	LTDataType data;
	struct ListNode* next;
}ListNode;

//新结点
ListNode* BuyListNode( LTDataType x);
//初始化双向带头链表
ListNode* ListNodeInit();
//打印
void ListNodePintf(ListNode* phead);
//尾插
void ListNodePushBack(ListNode* phead, LTDataType x);
//尾删
void ListNodePopBack(ListNode* phead );
//头插
void ListNodePushFront(ListNode* phead, LTDataType x);
//头删
void ListNodePophFront(ListNode* phead);
//查找
ListNode* FindPos(ListNode* phead, LTDataType x);
//在pos之前插入
void ListNodeInsert(ListNode* pos, LTDataType x);
//删除pos位置
void ListNodePosErase(ListNode* pos);
//销毁
void ListNodeDestroyed(ListNode* phead);






